package cn.tedu.sp06;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

//@EnableCircuitBreaker  //启用 hystrix 断路器
//@EnableDiscoveryClient //让注册中心能够发现，扫描到该服务
//@SpringBootApplication

@SpringCloudApplication //可以代替上面的三个注解
public class Sp06RibbonApplication {

    public static void main(String[] args) {
        SpringApplication.run(Sp06RibbonApplication.class, args);
    }
    //创建 RestTemplate 实例，并存入 spring 容器
    @LoadBalanced //负载均衡注解
    @Bean
    public RestTemplate getRestTemplate() {
        //RestTemplate 中默认的 Factory 实例中，两个超时属性默认是 -1，
        //-1的意思是未启用超时
        SimpleClientHttpRequestFactory sf=new SimpleClientHttpRequestFactory();
        sf.setConnectTimeout(1000);//建立链接等待超时时间
        sf.setReadTimeout(1000);//连接已建立并已发送请求,等待接受响应的超时时间
        return new RestTemplate(sf);
    }

}
